package com.zyzg.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.CompoundIndex;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;

import java.math.BigDecimal;
import java.util.Date;

@Document(collection = "gps_data")
@CompoundIndex(name = "config_timestamp_idx", def = "{'configId': 1, 'timestamp': 1}")
@Data
public class GpsData {

    @Id
    private String id;
    // 车辆ID（配置ID）
    @Indexed
    private int configId;

    /** 终端编号 */
    private String terminalCode;

    /** 经度 */
    private BigDecimal lng;

    /** 纬度 */
    private BigDecimal lat;

    /** 经度（高德） */
    private BigDecimal gdLng;

    /** 纬度（高德） */
    private BigDecimal gdLat;

    /** 经度（百度） */
    private BigDecimal baiduLng;

    /** 纬度（百度） */
    private BigDecimal baiduLat;

    /** 海拔 */
    private int height;

    /** 速度 */
    private Double speed;

    /** 方向 */
    private int direction;

    /** 油量 */
    private Double oil;

    /** GPS时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Indexed
    private Long gpsTime;

    /** 当日里程 */
    private Double mileage;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;


    // 城市编码
    private String cityCode;

    // 区域编码
    private String adcode;

    // 省份
    private String province;

    // 城市
    private String city;

    // 区县
    private String district;

    // 当前位置
    private String curAddress;
}
